import cv2
image = cv2.imread('./img/image00623.jpeg')
# print(gray.shape)
adjusted = cv2.convertScaleAbs(image, alpha=1.5, beta=5)
# 非局部均值去噪
denoised_image = cv2.fastNlMeansDenoisingColored(image, None, 40, 10, 7, 21)
# 将彩色图转为灰度图
gray=cv2.cvtColor(denoised_image,cv2.COLOR_BGR2GRAY)
cv2.imwrite('./img/image00623_gray.jpg',gray)


def wash_img(path,filename):
    image = cv2.imread(path+'\\'+filename)
    if image is None:
        return False
    adjusted = cv2.convertScaleAbs(image, alpha=1.5, beta=5)
    # 非局部均值去噪
    # 非局部均值去噪
    # 参数说明：
    # 25：去噪强度（值越大，去噪效果越强，但细节损失越多）。
    # 10：模板窗口大小（用于计算像素相似性）。
    # 7：搜索窗口大小（用于寻找相似像素）。
    # 21：用于加权平均的像素块大小。
    denoised_image = cv2.fastNlMeansDenoisingColored(adjusted, None, 25, 10, 7, 21)
    # 将彩色图转为灰度图
    gray=cv2.cvtColor(denoised_image,cv2.COLOR_BGR2GRAY)
    cv2.imwrite(path+'\\'+'new_'+filename,gray)
    return True


import cv2
folder_path='.\\img'
file_name = 'image00623.jpeg'
wash_img(folder_path,file_name)


import os
import cv2
# 获取文件夹下的所有文件名
folder_path='./img/kongzi/1/'
file_names = os.listdir(folder_path)

# 过滤掉文件夹，只保留文件
file_names = [f for f in file_names if os.path.isfile(os.path.join(folder_path, f))]
for file_name in file_names:
    print(folder_path+'\\'+file_name)
    ret = wash_img(folder_path,file_name)
    print(ret)
